// 函数的类型

// 声明式函数
function sum (a: number, b: number): number {
  return a + b
}
// 表达式函数
const sum1: Function = function (a: string, b: string): string {
  return a + b
}
const sum2: Function = (a: string, b: string): string => {
  return a + b
}
const sum3: (a: string, b: string) => string = function (a: string, b: string): string {
  return a + b
}
// 注意不要混淆了 TypeScript 中的 => 和 ES6 中的 =>。

// 在 TypeScript 的类型定义中，=> 用来表示函数的定义，左边是输入类型，需要用括号括起来，
// 右边是输出类型。

// 在 ES6 中，=> 叫做箭头函数，应用十分广泛，可以参考 [ES6 中的箭头函数][]
const sum4: (a: string, b: string) => string = (a: string, b: string): string => {
  return a + b
}

// 如果函数没有返回值 写 void
function test (a: number, b: number): void { console.log(a+b) }
const test1: (a: number, b: number) => void = (a: number, b: number): void => {console.log(a+b)}